home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO026.dsk / STOCKTRK.bas < prev   
BASIC Source File  |  2012-02-16  |  29KB  |  486 lines

  1. 100  REM      ******************************************
  2. 110  REM      *                                        *
  3. 120  REM      *  Stock Portfolio Tracking Program  V2  *
  4. 130  REM      *  Copyright 1986/ 1987 by Eric P. King  *
  5. 140  REM       *             STOCKTRK  V 2.10           *
  6. 150  REM        *                                        *
  7. 160  REM      ******************************************
  8. 170  REM 
  9. 180  REM      <<--------- INITIALIZATION ---------->>
  10. 190  REM 
  11. 200  PRINT  CHR$(4)"PR#3": CALL  PEEK(175) +256 * PEEK(176) -46
  12. 210 D$ =  CHR$(4): ONERR  GOTO 3740
  13. 220  DIM M$(100,1),T$(14),U$(13),A(13): PRINT : PRINT 
  14. 230  & "CENTER","******************************************"
  15. 240  & "CENTER","*                                        *"
  16. 250  & "CENTER","*  Stock Portfolio Tracking Program  V2  *"
  17. 260  & "CENTER","*  Copyright 1986/ 1987 by Eric P. King  *"
  18. 270  & "CENTER","*             CIS 72255,213              *"
  19. 280  & "CENTER","*                V 2.10                  *"
  20. 290  & "CENTER","*                                        *"
  21. 300  & "CENTER","******************************************"
  22. 310  PRINT : PRINT : PRINT : & "CENTER","This program system incorporates portions of"
  23. 320  & "CENTER","The Toolbox Series"
  24. 330  & "CENTER","a copyrighted product of Roger Wagner Publishing, Inc."
  25. 340  PRINT : PRINT : & "CENTER","** ENSURE CAPS LOCK KEY IS DOWN **": & "WINDOW",22: HOME 
  26. 350  PRINT D$"PREFIX": INPUT P1$: PRINT D$"OPEN CONFIG": PRINT D$"READ CONFIG": INPUT P2$: PRINT D$"CLOSE"
  27. 360 FL = 3: PRINT D$"PREFIX"P2$:FL = 0: FOR I = 1 TO 78:Z1$ = Z1$ +" ": NEXT : FOR I = 1 TO 78:Z2$ = Z2$ +"-": NEXT 
  28. 370 FL = 1: PRINT D$"VERIFY MASTER"
  29. 380  PRINT D$"OPEN MASTER": PRINT D$"READ MASTER, R0": INPUT A1: IF A1 = 0  THEN  PRINT D$"CLOSE": GOTO 1290
  30. 390  FOR I = 1 TO A1: PRINT D$"READ MASTER, R"I: INPUT M$(I,0)
  31. 400  INPUT M$(I,1): NEXT : PRINT D$"CLOSE":M$(0,0) =  STR$(A1):FL = 0: GOTO 3580
  32. 410  REM      --- DISPLAY NAMES IN MASTER FILE SUB ---
  33. 420 N$ = "<< NAMES IN USE >>": GOSUB 480
  34. 430  & "WINDOW",4,24,35: HOME : IF A = 0 GOTO 1290
  35. 440 J = 0: FOR I = 1 TO A1: PRINT M$(I,0)"     Lot# "M$(I,1)
  36. 450 J = J +1: IF J = 15  THEN  PRINT : PRINT "=MORE= PRESS ANY KEY";: CALL  -756: HOME :J = 0
  37. 460  NEXT : PRINT : PRINT "=THATS ALL=  PRESS ANY KEY";: CALL  -756: RETURN 
  38. 470  REM     -- SECTION TITLE SUB --
  39. 480  & "WINDOW": HOME : VTAB 2: & "CENTER",N$: & "WINDOW",4: HOME : RETURN 
  40. 490  REM     -- GET INVESTMENT NAME SUB --
  41. 500  PRINT "Name: ";: & "IU","#=0..9,A..Z,.;@=A..Z,1";"@#####";A$: RETURN 
  42. 510  REM     -- STANDARD SPIEL --
  43. 520  & "POS",15,9;"Enter the name of the Investment or 1 for a list of": & "POS",15,10;"Investments on file.": & "POS",30,11;"(RETURN to exit to Menu)": & "POS",35,12: RETURN 
  44. 530  REM     --- COMPARE DATES ---
  45. 540 B = 0: IF  VAL( RIGHT$(D1$,2)) > VAL( RIGHT$(D2$,2))  THEN B = 1: RETURN 
  46. 550  IF  VAL( RIGHT$(D1$,2)) < VAL( RIGHT$(D2$,2))  THEN  RETURN 
  47. 560  IF  VAL( LEFT$(D1$,2)) > VAL( LEFT$(D2$,2))  THEN B = 1: RETURN 
  48. 570  IF  VAL( LEFT$(D1$,2)) < VAL( LEFT$(D2$,2))  THEN  RETURN 
  49. 580  IF  VAL( MID$ (D1$,4,2)) =  > VAL( MID$ (D2$,4,2))  THEN B = 1
  50. 590  RETURN 
  51. 600  REM 
  52. 610  REM      <<------- DATE ENTRY VALIDATION ------->
  53. 620  REM 
  54. 630  REM      --- VALIDATE MONTH ----
  55. 640 C = 0: IF  VAL(T$(B)) <1  OR  VAL(T$(B)) >12  THEN C = 1
  56. 650  RETURN 
  57. 660  REM      --- VALIDATE DAY ---
  58. 670 C = 0: IF  VAL(T$(B)) <1  OR  VAL(T$(B)) >31  THEN C = 1
  59. 680  RETURN 
  60. 690  REM      --- VALIDATE YEAR ---
  61. 700 C = 0: IF  LEN(T$(B)) < >2  THEN C = 1
  62. 710  RETURN 
  63. 720  REM 
  64. 730  REM      <<--- UPDATE MARKET PRICES SUBROUTINE --->>
  65. 740  REM 
  66. 750 N$ = "<< UPDATE MARKET PRICES >>": GOSUB 480
  67. 760  & "POS",33,5;"1) Manual Data Entry": & "POS",33,6;"2) Integrate Compuserve Data": & "POS",33,7;"3) Return to Main Menu": & "POS",33,9
  68. 770  & "IU","#=1..3";"#";A$: IF A$ = "" GOTO 760
  69. 780 A =  VAL(A$): ON A GOTO 910,800,3580
  70. 790  REM     --INTEGRATE CIS DATA/ PREP --
  71. 800  HOME : & "POS",25,5;"Use a Compuserve Data Text File": & "WINDOW",8,23,8: HOME 
  72. 810  PRINT "This option allows you to automatically update your market data"
  73. 820  PRINT "for investments on file using formatted data downloaded from the"
  74. 830  PRINT "Compuserve Information Service.  Read the documentation for": PRINT "complete details on how to use this feature.": PRINT 
  75. 840  PRINT "The data text file must be on the data disk and it must be named"
  76. 850  & "POS",36,15;"CIS.DATA": & "POS",33,17;"1) Begin Auto Update"
  77. 860  & "POS",33,18;"2) Back up": & "POS",33,20
  78. 870  & "IU","#=1,2";"#";A$: IF A$ = "" GOTO 860
  79. 880 A =  VAL(A$): IF A = 2 GOTO 750
  80. 890 FL = 2: PRINT D$"VERIFY CIS.DATA": PRINT D$"PREFIX"P1$: PRINT D$"RUN INTG.CIS"
  81. 900  REM     -- MANUAL DATA ENTRY --
  82. 910  GOSUB 480
  83. 920  & "POS",35,4;"Manual Data Entry": GOSUB 520
  84. 930  GOSUB 500: IF A$ = "" GOTO 3580
  85. 940  IF  VAL(A$) = 1  THEN  GOSUB 420: GOTO 910
  86. 950 B = 0: FOR I = 1 TO A1: IF A$ = M$(I,0)  THEN B = 1:I = A1
  87. 960  NEXT : IF B = 1 GOTO 990
  88. 970  CALL  -198: & "POS",10,20;"That name is not in the Master file."
  89. 980  & "POS",10,21;"To try again press any key": CALL  -756: GOTO 910
  90. 990  HOME : & "POS",30,4: PRINT "Updating prices for "A$: & "WINDOW",5
  91. 1000  PRINT D$"OPEN PRICES/"A$: PRINT D$"READ PRICES/"A$",R0"
  92. 1010  INPUT RT: IF RT >0 GOTO 1030
  93. 1020  PRINT D$"CLOSE":D1$ = "NONE": GOTO 1050
  94. 1030  PRINT D$"READ PRICES/"A$",R"RT: FOR I = 0 TO 6: INPUT T$(I): NEXT 
  95. 1040  PRINT D$"CLOSE":D1$ = T$(4) +"/" +T$(5) +"/" +T$(6)
  96. 1050  HOME : & "POS",30,5: PRINT "Date of last Update was: "D1$
  97. 1060  GOSUB 4230: & "POS",33,15;"1) Enter/ Correct Data"
  98. 1070  & "POS",33,16;"2) Record this Update"
  99. 1080  & "POS",33,17;"3) Backup to Name Entry"
  100. 1090  & "POS",33,19: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 1090
  101. 1100 A =  VAL(B$): ON (A -1) GOTO 1140,910
  102. 1110  GOSUB 4260: GOTO 1090
  103. 1120  REM     -- SAVE NEW UPDATE ---
  104. 1130  REM     -- CHECK THAT NEW DATA IS NEWER THAN LAST UPDATE --
  105. 1140  IF  LEN(T$(4)) <2  THEN T$(4) = "0" +T$(4)
  106. 1150  IF  LEN(T$(5)) <2  THEN T$(5) = "0" +T$(5)
  107. 1160 D2$ = T$(4) +"/" +T$(5) +"/" +T$(6): IF D1$ = "NONE" GOTO 1220
  108. 1170  GOSUB 540: ON (B = 0) GOTO 1220
  109. 1180  & "POS",1,21;"The date of the update must be more recent than the date"
  110. 1190  PRINT "of the previous update.  Press <RETURN> to re-enter."
  111. 1200  CALL  -198: CALL  -756: & "POS",1,21: CALL  -958: GOTO 1060
  112. 1210  REM     -- SAVE THE DATA --
  113. 1220 RT = RT +1: PRINT D$"OPEN PRICES/"A$: PRINT D$"WRITE PRICES/"A$",R"RT
  114. 1230  FOR I = 0 TO 6: PRINT T$(I): NEXT : PRINT D$"WRITE PRICES/"A$",R0"
  115. 1240  PRINT RT: PRINT D$"CLOSE":D1$ = D2$: FOR I = 0 TO 6:T$(I) = "": NEXT 
  116. 1250  GOTO 1050
  117. 1260  REM 
  118. 1270  REM      <<--- ADD INVESTMENTS SUBROUTINE --->>
  119. 1280  REM 
  120. 1290 N$ = "<< ADD A NEW INVESTMENT >>": GOSUB 480: ON (A1 = 100) GOTO 1630
  121. 1300  & "CENTER","Enter the name of the Equity. Up to six characters are allowed."
  122. 1310  & "CENTER","The first character must be a letter."
  123. 1320  & "CENTER","Use only letters & numbers.": PRINT : PRINT 
  124. 1330  & "CENTER","Enter <RETURN> to exit to Main Menu) or"
  125. 1340  & "CENTER","Enter 1 to display names in use."
  126. 1350  & "POS",20,20
  127. 1360  PRINT "There are "A1" Investments on file."
  128. 1370  & "POS",30,12: GOSUB 500: IF A$ = ""  AND A1 = 0 GOTO 1290
  129. 1380  IF A$ = "" GOTO 3580
  130. 1390  IF  VAL(A$) = 1  AND A1 = 0 GOTO 1290
  131. 1400  IF  VAL(A$) = 1  THEN  GOSUB 420: GOTO 1290
  132. 1410 Z = 0: FOR I = 1 TO A1: IF A$ = M$(I,0)  THEN Z = Z +1
  133. 1420  NEXT : & "WINDOW",11: HOME : & "POS",15,13
  134. 1430  PRINT "This will be "A$"  Lot # "Z +1: & "POS"20,15
  135. 1440  PRINT "Press RETURN to continue or ESC to back up.": GET B$
  136. 1450  IF B$ =  CHR$(27)  THEN  HOME : & "WINDOW": GOTO 1350
  137. 1460 Z = Z +1:Y = A1 +1:M$(Y,0) = A$:M$(Y,1) =  STR$(Z): & "WINDOW",4: HOME 
  138. 1470  REM     -- Z IS SET TO NEW LOT #. Y IS SET TO NEW REC #
  139. 1480 T$(0) = M$(Y,0):T$(1) = M$(Y,1)
  140. 1490  GOSUB 3950: & "POS",33,15;"1) Enter/ Correct Data"
  141. 1500  & "POS",33,16;"2) Record this Investment"
  142. 1510  & "POS",33,17;"3) Backup to name entry"
  143. 1520  & "POS",33,19: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 1520
  144. 1530 B =  VAL(B$): ON (B -1) GOTO 1570,1550
  145. 1540  GOSUB 3990: GOTO 1520
  146. 1550  FOR I = 0 TO 9:T$(I) = "": NEXT : GOTO 1290
  147. 1560  REM      ---- SAVE NEW RECORD TO MASTER FILE -----
  148. 1570 A1 = Y: PRINT D$"OPEN MASTER": PRINT D$"WRITE MASTER,R"A1
  149. 1580  FOR I = 0 TO 9: PRINT T$(I): NEXT 
  150. 1590  PRINT D$"WRITE MASTER,R0": PRINT A1: PRINT D$"CLOSE"
  151. 1600 FL = 4: PRINT D$"VERIFY PRICES/"M$(A1,0)
  152. 1610 FL = 0: GOTO 1550
  153. 1620  REM     ---- MAX # OF INVESTMENTS RECORDED ----
  154. 1630  CALL  -198: & "CENTER","<< THERE ARE 100 INVESTMENTS ON FILE >>": PRINT : PRINT "This is the maximum number of investments that can be handled by one data"
  155. 1640  PRINT "disk.  You must either consolidate some of your lot numbers of the same": PRINT "investment or use a different data disk for your new investments."
  156. 1650  PRINT "If you are going to switch to a new data disk, you must re-boot.": PRINT : PRINT : & "CENTER","PRESS ANY KEY TO CONTINUE": CALL  -756: GOTO 3580
  157. 1660  REM 
  158. 1670  REM     <<--- RECORD DIVIDEND/ CAP GAIN SUBROUTINE --->>
  159. 1680  REM 
  160. 1690 N$ = "<< DIVIDEND/ CAP GAIN >>": GOSUB 480: & "POS",30,6;"1) Record Dividend.": & "POS",30,7;"2) Record Capitol Gain.": & "POS",30,9;"Return to Exit."
  161. 1700  & "POS",33,11: & "IU","#=1,2";"#";A$: IF A$ = "" GOTO 3580
  162. 1710  IF A$ = "1"  THEN N$ = "DIVIDEND": GOSUB 480
  163. 1720  IF A$ = "2"  THEN N$ = "CAP.GAIN": GOSUB 480
  164. 1730  HOME : PRINT D$"OPEN"N$: PRINT D$"READ "N$",R0"
  165. 1740  INPUT RT: IF RT >0 GOTO 1760
  166. 1750  PRINT D$"CLOSE":D1$ = "NONE": GOTO 1780
  167. 1760  PRINT D$"READ "N$",R"RT: FOR I = 0 TO 4: INPUT T$(I): NEXT 
  168. 1770  PRINT D$"CLOSE":D1$ = T$(2) +"/" +T$(3) +"/" +T$(4)
  169. 1780  & "POS",20,5: PRINT "Last Entry on: "D1$:T$(0) = ""
  170. 1790  GOSUB 4480: & "POS",33,17;"1) Enter/ Correct Data"
  171. 1800  & "POS",33,18;"2) Record this Update"
  172. 1810  & "POS",33,19;"3) Backup"
  173. 1820  & "POS",33,20: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 1820
  174. 1830 A =  VAL(B$): ON (A -1) GOTO 1860,1690
  175. 1840  GOSUB 4500: GOTO 1820
  176. 1850  REM     -- SAVE NEW UPDATE ---
  177. 1860  IF T$(0) = ""  OR  VAL(T$(1)) = 0 GOTO 1780
  178. 1870 RT = RT +1: PRINT D$"OPEN "N$
  179. 1880  PRINT D$"WRITE "N$",R"RT
  180. 1890  FOR I = 0 TO 4: PRINT T$(I): NEXT : PRINT D$"WRITE "N$",R0"
  181. 1900  PRINT RT: PRINT D$"CLOSE": FOR I = 0 TO 4:T$(I) = "": NEXT 
  182. 1910  GOTO 1730
  183. 1920  REM 
  184. 1930  REM      <<--- SELL INVESTMENT SUBROUTINE --->>
  185. 1940  REM 
  186. 1950 N$ = "<< SELL AN INVESTMENT >>": GOSUB 480
  187. 1960  GOSUB 520: GOSUB 500: IF A$ = "" GOTO 3580
  188. 1970  IF  VAL(A$) = 1  THEN  GOSUB 420: GOTO 1950
  189. 1980 B = 0: FOR I = 1 TO A1: IF A$ = M$(I,0)  THEN B = 1:I = A1
  190. 1990  NEXT : IF B = 1 GOTO 2020
  191. 2000  CALL  -198: & "POS",10,20;"That name is not in the Master file."
  192. 2010  & "POS",10,21;"To try again press any key": CALL  -756: GOTO 1950
  193. 2020 B = 0: FOR I = A1 TO 1  STEP  -1: IF A$ = M$(I,0)  THEN B =  VAL(M$(I,1)):I = 1
  194. 2030  NEXT : IF B = 1  THEN C = B: GOTO 2080
  195. 2040  & "POS",26,15: PRINT "Files contain Lot# 1 to Lot # "B
  196. 2050  & "POS",26,17: PRINT "Select the one to sell from; Lot# ";
  197. 2060  & "IU";"##";B$: IF B$ = "" GOTO 1950
  198. 2070 C =  VAL(B$): IF C <1  OR C >B GOTO 2050
  199. 2080  FOR I = 1 TO A1: IF A$ = M$(I,0)  AND C =  VAL(M$(I,1))  THEN D = I:I = A1
  200. 2090  NEXT : PRINT D$"OPEN MASTER": PRINT D$"READ MASTER,R"D
  201. 2100  FOR I = 0 TO 8: INPUT T$(I): NEXT : INPUT U$(0): PRINT D$"CLOSE"
  202. 2110  HOME : & "POS",30,4: PRINT "Name: "T$(0)"  Lot# "T$(1)
  203. 2120  GOSUB 4630
  204. 2130  & "POS",33,22: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 2130
  205. 2140 A =  VAL(B$): ON (A -1) GOTO 2170,1950
  206. 2150  GOSUB 4690: GOTO 2130
  207. 2160  REM     -- SAVE DATA TO DISK --
  208. 2170  IF  VAL(T$(9)) = 0 GOTO 2110
  209. 2180  PRINT D$"OPEN SALES": PRINT D$"READ SALES,R0": INPUT RT
  210. 2190  PRINT D$"WRITE SALES,R"RT +1: FOR I = 0 TO 14: PRINT T$(I)
  211. 2200  NEXT : PRINT D$"WRITE SALES,R0": PRINT RT +1: PRINT D$"CLOSE"
  212. 2210  REM     -- UPDATE MASTER FILE IF ANY SHARES LEFT --
  213. 2220  IF  VAL(T$(9)) =  VAL(T$(2)) GOTO 2290
  214. 2230 Z = ( VAL(T$(7))/ VAL(T$(2))):T$(2) =  STR$(( VAL(T$(2))) -( VAL(T$(9)))):Y = Z * VAL(T$(2)):T$(7) =  STR$(Y): IF  LEN(T$(7)) >7  THEN T$(7) =  LEFT$(T$(7),7)
  215. 2240  PRINT D$"OPEN MASTER": PRINT D$"WRITE MASTER,R"D
  216. 2250  FOR I = 0 TO 8: PRINT T$(I): NEXT : PRINT U$(0): PRINT D$"CLOSE":U$(0) = ""
  217. 2260  FOR I = 0 TO 14:T$(I) = "": NEXT : GOTO 1950
  218. 2270  REM     -- NO SHARES IN THIS LOT LEFT --
  219. 2280  REM     -- UPDATE M$() & COMPRESS MASTER FILE --
  220. 2290  FOR I = 0 TO 14:T$(I) = "": NEXT :U$(0) = "": GOSUB 4860: GOTO 1950
  221. 2300  REM 
  222. 2310  REM      <<--- EDIT A RECORD SUBROUTINE --->>
  223. 2320  REM 
  224. 2330 N$ = "<< EDIT RECORDS ON FILE >>": GOSUB 480
  225. 2340  PRINT : PRINT : & "CENTER","Select File to Edit"
  226. 2350  & "POS",33,9;"1) Master": & "POS",33,10;"2) Sales"
  227. 2360  & "POS",33,11;"3) Prices": & "POS",33,12;"4) Dividends": & "POS",33,13;"5) Capitol Gains"
  228. 2370  & "POS",33,14;"6) Return to Main Menu": & "POS",33,16;"Select: ";
  229. 2380  & "IU","#=1..6";"#";B$: IF B$ = "" GOTO 2370
  230. 2390 X =  VAL(B$): ON X GOTO 2400,2690,2400,3120,3340,3580
  231. 2400 N$ = "<< EDIT RECORDS ON FILE >>": GOSUB 480: HOME : GOSUB 520: GOSUB 500: IF A$ = "" GOTO 2330
  232. 2410  IF  VAL(A$) = 1  THEN  GOSUB 420: GOTO 2400
  233. 2420 B = 0: FOR I = 1 TO A1: IF A$ = M$(I,0)  THEN B = 1:I = A1
  234. 2430  NEXT : IF B = 1 GOTO 2460
  235. 2440  CALL  -198: & "POS",10,20;"That name is not in the Master file."
  236. 2450  & "POS",10,21;"To try again press any key": CALL  -756: GOTO 2400
  237. 2460  IF X = 3 GOTO 2900
  238. 2470  REM     -- EDIT RECORD IN MASTER FILE --
  239. 2480 N$ = "<< EDIT MASTER FILE >>": GOSUB 480: HOME : & "CENTER",A$:B = 0: FOR I = A1 TO 1  STEP  -1: IF A$ = M$(I,0)  THEN B =  VAL(M$(I,1)):I = 1
  240. 2490  NEXT : IF B = 1  THEN C = B: GOTO 2540
  241. 2500  & "POS",26,15: PRINT "Files contain Lot# 1 to Lot # "B
  242. 2510  & "POS",26,17: PRINT "Select the one to Edit. Lot# ";
  243. 2520  & "IU";"##";B$: IF B$ = "" GOTO 2330
  244. 2530 C =  VAL(B$): IF C <1  OR C >B GOTO 2510
  245. 2540  FOR I = 1 TO A1: IF A$ = M$(I,0)  AND C =  VAL(M$(I,1))  THEN D = I:I = A1
  246. 2550  NEXT : PRINT D$"OPEN MASTER": PRINT D$"READ MASTER,R"D
  247. 2560  FOR I = 0 TO 9: INPUT T$(I): NEXT : PRINT D$"CLOSE"
  248. 2570  HOME : & "POS",24,4: PRINT "Name: "T$(0)"   Lot#: "T$(1)
  249. 2580  GOSUB 3960: & "WINDOW",4,20,32: & "POS",32,6: FOR I = 2 TO 9
  250. 2590  PRINT T$(I): NEXT : & "WINDOW",4
  251. 2600  & "POS",33,15;"1) Enter/ Correct Data"
  252. 2610  & "POS",33,16;"2) Record this Update"
  253. 2620  & "POS",33,17;"3) Backup to Name Entry"
  254. 2630  & "POS",33,19: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 2630
  255. 2640 A =  VAL(B$): ON (A -1) GOTO 2660,2400
  256. 2650  GOSUB 3990: GOTO 2630
  257. 2660  PRINT D$"OPEN MASTER": PRINT D$"WRITE MASTER,R"D: FOR I = 0 TO 9
  258. 2670  PRINT T$(I):T$(I) = "": NEXT : PRINT D$"CLOSE": GOTO 2330
  259. 2680  REM     -- EDIT RECORD FROM SALES FILE --
  260. 2690 N$ = "<< EDIT SALES RECORD >>": GOSUB 480: HOME : PRINT D$"OPEN SALES": PRINT D$"READ SALES,R0": INPUT RT
  261. 2700  PRINT D$"CLOSE": IF RT >0 GOTO 2730
  262. 2710  & "POS",20,10;"There are no Sales records to Edit."
  263. 2720  & "POS",20,12;"Press any key to continue": CALL  -756: GOTO 2330
  264. 2730  IF RT = 1  THEN A = 1: GOTO 2780
  265. 2740  & "POS",20,10: PRINT "Records on file are 1 to "RT: & "POS",20,12
  266. 2750  PRINT "Select the one to Edit": & "POS",38,14
  267. 2760  & "IU";"##";B$: IF B$ = "" GOTO 2330
  268. 2770 A =  VAL(B$): IF A <1  OR A >RT  THEN  CALL  -198: GOTO 2750
  269. 2780  HOME : PRINT D$"OPEN SALES": PRINT D$"READ SALES,R"A
  270. 2790  FOR I = 0 TO 14: INPUT T$(I): NEXT : PRINT D$"CLOSE"
  271. 2800  & "POS",30,4: PRINT "Name: "T$(0)"  Lot# "T$(1)
  272. 2810  GOSUB 4630
  273. 2820  & "WINDOW",4,20,32: & "POS",32,12: FOR I = 9 TO 14
  274. 2830  PRINT T$(I): NEXT : & "WINDOW",4,24,1,80
  275. 2840  & "POS",33,22: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 2840
  276. 2850 E =  VAL(B$): ON (E -1) GOTO 2870,2330
  277. 2860  GOSUB 4690: GOTO 2840
  278. 2870  PRINT D$"OPEN SALES": PRINT D$"WRITE SALES,R"A: FOR I = 0 TO 14
  279. 2880  PRINT T$(I):T$(I) = "": NEXT : PRINT D$"CLOSE": GOTO 2330
  280. 2890  REM     -- EDIT RECORD IN PRICE FILE --
  281. 2900 N$ = "<< EDIT PRICE FILE >>": GOSUB 480: HOME : & "CENTER",A$: PRINT D$"OPEN PRICES/"A$: PRINT D$"READ PRICES/"A$",R0"
  282. 2910  INPUT RT: PRINT D$"CLOSE": IF RT >0 GOTO 2940
  283. 2920  & "POS",20,10;"There are no Price records to Edit."
  284. 2930  & "POS",20,12;"Press any key to continue": CALL  -756: GOTO 2400
  285. 2940  IF RT = 1  THEN A = 1: GOTO 2990
  286. 2950  & "POS",20,10: PRINT "Records on file are 1 to "RT: & "POS",20,12
  287. 2960  PRINT "Select the one to Edit": & "POS",38,14
  288. 2970  & "IU";"###";B$: IF B$ = "" GOTO 2330
  289. 2980 A =  VAL(B$): IF A <1  OR A >RT  THEN  CALL  -198: GOTO 2960
  290. 2990  HOME : PRINT D$"OPEN PRICES/"A$: PRINT D$"READ PRICES/"A$",R"A
  291. 3000  FOR I = 0 TO 6: INPUT T$(I): NEXT : PRINT D$"CLOSE"
  292. 3010  HOME : & "CENTER",A$: GOSUB 4230: & "WINDOW",4,20,32: & "POS",32,7
  293. 3020  FOR I = 0 TO 6: PRINT T$(I): NEXT : & "WINDOW",4
  294. 3030  & "POS",33,15;"1) Enter/ Correct Data"
  295. 3040  & "POS",33,16;"2) Record this Update"
  296. 3050  & "POS",33,17;"3) Backup to Name Entry"
  297. 3060  & "POS",33,19: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 3060
  298. 3070 E =  VAL(B$): ON (E -1) GOTO 3090,2400
  299. 3080  GOSUB 4260: GOTO 3060
  300. 3090  PRINT D$"OPEN PRICES/"A$: PRINT D$"WRITE PRICES/"A$",R"A
  301. 3100  FOR I = 0 TO 6: PRINT T$(I):T$(I) = "": NEXT : PRINT D$"CLOSE": GOTO 2330
  302. 3110  REM     -- EDIT DIVIDEND RECORD --
  303. 3120 N$ = "<< EDIT DIVIDEND RECORD >>": GOSUB 480: HOME : PRINT D$"OPEN DIVIDEND": PRINT D$"READ DIVIDEND,R0"
  304. 3130  INPUT RT: PRINT D$"CLOSE": IF RT >0 GOTO 3160
  305. 3140  & "POS",20,10;"There are no Dividend records to Edit."
  306. 3150  & "POS",20,12;"Press any key to continue": CALL  -756: GOTO 2330
  307. 3160  IF RT = 1  THEN A = 1: GOTO 3210
  308. 3170  & "POS",20,10: PRINT "Records on file are 1 to "RT: & "POS",20,12
  309. 3180  PRINT "Select the one to Edit": & "POS",38,14
  310. 3190  & "IU";"##";B$: IF B$ = "" GOTO 2330
  311. 3200 A =  VAL(B$): IF A <1  OR A >RT  THEN  CALL  -198: GOTO 3180
  312. 3210  HOME : PRINT D$"OPEN DIVIDEND": PRINT D$"READ DIVIDEND,R"A
  313. 3220  FOR I = 0 TO 4: INPUT T$(I): NEXT : PRINT D$"CLOSE"
  314. 3230  HOME : & "CENTER",A$: GOSUB 4480: & "WINDOW",4,20,32: & "POS",32,8
  315. 3240  FOR I = 0 TO 4: PRINT T$(I): NEXT : & "WINDOW",4
  316. 3250  & "POS",33,15;"1) Enter/ Correct Data"
  317. 3260  & "POS",33,16;"2) Record this Update"
  318. 3270  & "POS",33,17;"3) Backup to Edit Menu"
  319. 3280  & "POS",33,19: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 3280
  320. 3290 E =  VAL(B$): ON (E -1) GOTO 3310,2330
  321. 3300  GOSUB 4500: GOTO 3280
  322. 3310  PRINT D$"OPEN DIVIDEND": PRINT D$"WRITE DIVIDEND,R"A
  323. 3320  FOR I = 0 TO 4: PRINT T$(I):T$(I) = "": NEXT : PRINT D$"CLOSE": GOTO 2330
  324. 3330  REM   -- EDIT CAPITOL GAINS RECORD --
  325. 3340 N$ = "<< EDIT CAPITOL GAINS RECORD >>": GOSUB 480: HOME : PRINT D$"OPEN CAP.GAIN": PRINT D$"READ CAP.GAIN,R0"
  326. 3350  INPUT RT: PRINT D$"CLOSE": IF RT >0 GOTO 3380
  327. 3360  & "POS",20,10;"There are no Capitol Gains records to Edit."
  328. 3370  & "POS",20,12;"Press any key to continue": CALL  -756: GOTO 2330
  329. 3380  IF RT = 1  THEN A = 1: GOTO 3430
  330. 3390  & "POS",20,10: PRINT "Records on file are 1 to "RT: & "POS",20,12
  331. 3400  PRINT "Select the one to Edit": & "POS",38,14
  332. 3410  & "IU";"##";B$: IF B$ = "" GOTO 2330
  333. 3420 A =  VAL(B$): IF A <1  OR A >RT  THEN  CALL  -198: GOTO 3390
  334. 3430  HOME : PRINT D$"OPEN CAP.GAIN": PRINT D$"READ CAP.GAIN,R"A
  335. 3440  FOR I = 0 TO 4: INPUT T$(I): NEXT : PRINT D$"CLOSE"
  336. 3450  HOME : & "CENTER",A$: GOSUB 4480: & "WINDOW",4,20,32: & "POS",32,8
  337. 3460  FOR I = 0 TO 4: PRINT T$(I): NEXT : & "WINDOW",4
  338. 3470  & "POS",33,15;"1) Enter/ Correct Data"
  339. 3480  & "POS",33,16;"2) Record this Update"
  340. 3490  & "POS",33,17;"3) Backup to Edit Menu"
  341. 3500  & "POS",33,19: & "IU","#=1..3";"#";B$: IF B$ = "" GOTO 3470
  342. 3510 E =  VAL(B$): ON (E -1) GOTO 3530,2330
  343. 3520  GOSUB 4500: GOTO 3470
  344. 3530  PRINT D$"OPEN CAP.GAIN": PRINT D$"WRITE CAP.GAIN,R"A
  345. 3540  FOR I = 0 TO 4: PRINT T$(I):T$(I) = "": NEXT : PRINT D$"CLOSE": GOTO 2330
  346. 3550  REM 
  347. 3560  REM      <<-------- MAIN MENU & CONTROL ---------->>
  348. 3570  REM 
  349. 3580 N$ = "<< STOCK TRACKING SYSTEM >>": GOSUB 480
  350. 3590  & "POS",30,4;"1) Update Market Prices"
  351. 3600  & "POS",30,5;"2) Add a New Investment"
  352. 3610  & "POS",30,6;"3) Record Dividend/ Cap Gain"
  353. 3620  & "POS",30,7;"4) Sell an Investment"
  354. 3630  & "POS",30,8;"5) Edit a Record": & "POS",30,9;"6) File Maintenance"
  355. 3640  & "POS",30,10;"7) Reports": & "POS",30,11;"8) Graphics"
  356. 3650  & "POS",30,12;"9) Exit": & "POS",30,15: & "IU","#=1..9";"#";A$
  357. 3660 A =  VAL(A$): ON A GOTO 750,1290,1690,1950,2330
  358. 3670  IF A = 6  THEN  HOME : PRINT D$"PREFIX"P1$: PRINT D$"CHAIN FIM"
  359. 3680  IF A = 9  THEN  & "WINDOW": HOME : PRINT  CHR$(17): PRINT D$"PREFIX"P1$: PRINT D$"BYE"
  360. 3690  IF A = 7  THEN  HOME : PRINT D$"PREFIX"P1$: PRINT D$"CHAIN REPORTER"
  361. 3700  HOME : PRINT D$"PREFIX"P1$: PRINT D$"RUN GRAPHER"
  362. 3710  REM 
  363. 3720  REM      <<--- ERROR ROUTINES --->>
  364. 3730  REM 
  365. 3740  & "ERR",EC,EL: POKE 216,0: ONERR  GOTO 3740
  366. 3750  IF EC = 9 GOTO 3910
  367. 3760  IF EC < >6 GOTO 3780
  368. 3770  ON FL GOTO 3800,3840,3860,3890
  369. 3780  PRINT D$"CLOSE": CALL  -211: PRINT : PRINT "UNHANDLED ERROR": PRINT "ERROR # "EC"  IN LINE  "EL: END 
  370. 3790  REM     --- FIRST BOOTUP - SYS FILES DO NOT EXIST
  371. 3800  PRINT D$"OPEN MASTER,L55": PRINT D$"WRITE MASTER,R0": PRINT 0: PRINT D$"CLOSE": PRINT D$"OPEN SALES,L80": PRINT D$"WRITE SALES,R0": PRINT 0: PRINT D$"CLOSE"
  372. 3810  PRINT D$"OPEN DIVIDEND,L24": PRINT D$"WRITE DIVIDEND,R0": PRINT 0: PRINT D$"CLOSE": PRINT D$"OPEN CAP.GAIN,L24": PRINT D$"WRITE CAP.GAIN,R0": PRINT 0: PRINT D$"CLOSE"
  373. 3820  PRINT D$"CREATE PRICES,TDIR":FL = 0: GOTO 1290
  374. 3830  REM     -- CIS.DATA NOT FOUND FOR AUTO UPDATE --
  375. 3840  & "WINDOW": HOME : & "POS",1,10;"I cannot find the file CIS.DATA": & "POS",30,13;"Press any key to continue": CALL  -198: CALL  -756:FL = 0: GOTO 750
  376. 3850  REM     -- DATA DISK NOT ON LINE --
  377. 3860  HOME : CALL  -211: PRINT "PLACE THE DATA DISK IN A DRIVE": PRINT : PRINT "PRESS ANY KEY WHEN READY"
  378. 3870  CALL  -756: HOME : GOTO 360
  379. 3880  REM    -- CREATE NEW PRICE FILE --
  380. 3890  PRINT D$"OPEN PRICES/"M$(A1,0)",L42": PRINT D$"WRITE PRICES/"M$(A1,0)",R0": PRINT 0: PRINT D$"CLOSE": GOTO 1610
  381. 3900  REM    -- DATA DISK IS FULL --
  382. 3910  PRINT D$"CLOSE": & "WINDOW": HOME : FOR I = 0 TO 3: CALL  -198: NEXT : & "POS",1,10: & "CENTER","*** THE DATA DISK IS FULL ***"
  383. 3920  PRINT : & "CENTER","You must use another data disk or decrease": & "CENTER","the size of your Price files.": PRINT : PRINT 
  384. 3930  & "CENTER","<< Press any key to exit >>": CALL  -758: GOTO 3580
  385. 3940  REM     --- INVESTMENT MASTER DATA SCREEN SUB ---
  386. 3950  & "POS",24,4: PRINT "Name: "M$(Y,0)"   Lot#: "M$(Y,1)
  387. 3960  & "POS",19,6;"# of Shares:": & "POS",15,7;"Price per Share:": & "POS",25,8;"Month:"
  388. 3970  & "POS",27,9;"Day:": & "POS",26,10;"Year:": & "POS",20,11;"Commission:": & "POS",17,12;"(B)uy/(S)hort:": & "POS",18,13;"Target Price:": RETURN 
  389. 3980  REM     --- ADD/EDIT INVESTMENT DATA ENTRY SUB ---
  390. 3990 X$ = T$(2): & "POS",42,6: & "IU","#=0..9,.";"#######";T$(2): IF X$ = ""  AND T$(2) = "" GOTO 3990
  391. 4010  IF T$(2) = ""  THEN T$(2) = X$
  392. 4020  & "POS",32,6: CALL  -868: PRINT T$(2)
  393. 4030 X$ = T$(3): & "POS",42,7: & "IU","#=0..9,.";"#######";T$(3): IF X$ = ""  AND T$(3) = "" GOTO 4030
  394. 4040  IF T$(3) = ""  THEN T$(3) = X$
  395. 4050  & "POS",32,7: CALL  -868: PRINT T$(3)
  396. 4060 X$ = T$(4): & "POS",42,8: & "IU";"##";T$(4): IF X$ = ""  AND T$(4) = "" GOTO 4060
  397. 4070  IF T$(4) = ""  THEN T$(4) = X$
  398. 4080 B = 4: GOSUB 640: ON C GOTO 4060: & "POS",32,8: CALL  -868: PRINT T$(4)
  399. 4090 X$ = T$(5): & "POS",42,9: & "IU";"##";T$(5):B = 5: IF X$ = ""  AND T$(5) = "" GOTO 4090
  400. 4100  IF T$(5) = ""  THEN T$(5) = X$
  401. 4110  GOSUB 670: ON C GOTO 4090: & "POS",32,9: CALL  -868: PRINT T$(5)
  402. 4120 X$ = T$(6): & "POS",42,10: & "IU";"##";T$(6):B = 6: IF X$ = ""  AND T$(6) = "" GOTO 4120
  403. 4130  IF T$(6) = ""  THEN T$(6) = X$
  404. 4140  GOSUB 700: ON C GOTO 4120: & "POS",32,10: CALL  -868: PRINT T$(6)
  405. 4150 X$ = T$(7): & "POS",42,11: & "IU","#=0..9,.";"#######";T$(7): IF T$(7) = ""  THEN T$(7) = X$
  406. 4160  & "POS",32,11: CALL  -868: PRINT T$(7)
  407. 4170 X$ = T$(8): & "POS",42,12: & "IU","#=B,S";"#";T$(8): IF X$ = ""  AND T$(8) = "" GOTO 4170
  408. 4180  IF T$(8) = ""  THEN T$(8) = X$
  409. 4190  & "POS",32,12: CALL  -868: PRINT T$(8)
  410. 4200 X$ = T$(9): & "POS",42,13: & "IU","#=0..9,.";"#######";T$(9): IF T$(9) = ""  THEN T$(9) = X$
  411. 4210  & "POS",32,13: CALL  -868: PRINT T$(9): RETURN 
  412. 4220  REM     --- UPDATE PRICES DATA FIELDS SUB ---
  413. 4230  & "POS",26,7;"High:": & "POS",27,8;"Low:": & "POS",25,9;"Close:": & "POS",21,10;"Vol(100s):": & "POS",25,11;"Month:"
  414. 4240  & "POS",27,12;"Day:": & "POS",26,13;"Year:": RETURN 
  415. 4250  REM     --- UPDATE PRICES DATA ENTRY SUB ---
  416. 4260 X$ = T$(0): & "POS",42,7: & "IU","#=0..9,.";"########";T$(0): IF T$(0) = ""  AND X$ = "" GOTO 4260
  417. 4270  IF T$(0) = ""  THEN T$(0) = X$
  418. 4280  & "POS",32,7: CALL  -868: PRINT T$(0)
  419. 4290 X$ = T$(1): & "POS",42,8: & "IU","#=0..9,.";"########";T$(1): IF T$(1) = ""  AND X$ = "" GOTO 4290
  420. 4300  IF T$(1) = ""  THEN T$(1) = X$
  421. 4310  & "POS",32,8: CALL  -868: PRINT T$(1)
  422. 4320 X$ = T$(2): & "POS",42,9: & "IU","#=0..9,.";"########";T$(2): IF T$(2) = ""  AND X$ = "" GOTO 4320
  423. 4330  IF T$(2) = ""  THEN T$(2) = X$
  424. 4340  & "POS",32,9: CALL  -868: PRINT T$(2)
  425. 4350 X$ = T$(3): & "POS",42,10: & "IU";"#####";T$(3): IF T$(3) = ""  THEN T$(3) = X$
  426. 4360  IF T$(3) = ""  AND X$ = "" GOTO 4400
  427. 4370 B =  LEN(T$(3)):C = 0: FOR I = 1 TO B:B =  ASC( MID$ (T$(3),I,1))
  428. 4380  IF B <48  OR B >57  THEN C = 1
  429. 4390  NEXT : ON C GOTO 4350: & "POS",32,10: CALL  -868: PRINT T$(3)
  430. 4400 X$ = T$(4): & "POS",42,11: & "IU";"##";T$(4):B = 4: IF T$(4) = ""  THEN T$(4) = X$
  431. 4410  GOSUB 640: ON C GOTO 4400: & "POS",32,11: CALL  -868: PRINT T$(4)
  432. 4420 X$ = T$(5): & "POS",42,12: & "IU";"##";T$(5):B = 5: IF T$(5) = ""  THEN T$(5) = X$
  433. 4430  GOSUB 670: ON C GOTO 4420: & "POS",32,12: CALL  -868: PRINT T$(5)
  434. 4440 X$ = T$(6): & "POS",42,13: & "IU";"##";T$(6):B = 6: IF T$(6) = ""  THEN T$(6) = X$
  435. 4450  GOSUB 700: ON C GOTO 4440: & "POS",32,13: CALL  -868: PRINT T$(6)
  436. 4460  RETURN 
  437. 4470  REM     --- DIVIDEND/ CAP.GAIN DATA SCREEN SUB ---
  438. 4480  & "POS",26,8;"Name:": & "POS",24,9;"Amount:": & "POS",25,10;"Month:": & "POS",27,11;"Day:": & "POS",26,12;"Year:": RETURN 
  439. 4490  REM     --- DIVIDEND/ CAP.GAIN DATA ENTRY SUB ---
  440. 4500 X$ = T$(0): & "POS",42,8: & "IU","#=0..9,A..Z,.;@=A..Z,1";"@#####";T$(0): IF T$(0) = ""  AND X$ = "" GOTO 4500
  441. 4510  IF T$(0) = ""  THEN T$(0) = X$
  442. 4520  & "POS",32,8: CALL  -868: PRINT T$(0)
  443. 4530 X$ = T$(1): & "POS",42,9: & "IU","#=0..9,.";"#######";T$(1): IF T$(1) = ""  AND X$ = "" GOTO 4530
  444. 4540  IF T$(1) = ""  THEN T$(1) = X$
  445. 4550  & "POS",32,9: CALL  -868: PRINT T$(1)
  446. 4560 X$ = T$(2): & "POS",42,10: & "IU";"##";T$(2):B = 2: IF T$(2) = ""  THEN T$(2) = X$
  447. 4570  GOSUB 640: ON C GOTO 4560: & "POS",32,10: CALL  -868: PRINT T$(2)
  448. 4580 X$ = T$(3): & "POS",42,11: & "IU";"##";T$(3):B = 3: IF T$(3) = ""  THEN T$(3) = X$
  449. 4590  GOSUB 670: ON C GOTO 4580: & "POS",32,11: CALL  -868: PRINT T$(3)
  450. 4600 X$ = T$(4): & "POS",42,12: & "IU";"##";T$(4):B = 4: IF T$(4) = ""  THEN T$(4) = X$
  451. 4610  GOSUB 700: ON C GOTO 4600: & "POS",32,12: CALL  -868: PRINT T$(4): RETURN 
  452. 4620  REM     -- SELL INVESTMENT/ DATA SCREEN --
  453. 4630  & "POS",24,5: PRINT "# of Shares: "T$(2): & "POS",21,6: PRINT "Purchase Price: "T$(3): & "POS",21,7: PRINT "Purchase Month: "T$(4)
  454. 4640  & "POS",23,8: PRINT "Purchase Day: "T$(5): & "POS",22,9: PRINT "Purchase Year: "T$(6): & "POS",16,10: PRINT "Purchase Commission: "T$(7)
  455. 4650  & "POS",17,11: PRINT "(B)uy/(S)hort: "T$(8): & "POS",17,12;"# Shares Sold:": & "POS",20,13;"Sell Price:": & "POS",20,14;"Sell Month:": & "POS",22,15;"Sell Day:"
  456. 4660  & "POS",21,16;"Sell Year:": & "POS",15,17;"Sell Commission:": & "POS",33,19;"1) Enter/ Edit Sales Data": & "POS",33,20;"2) Record Entry"
  457. 4670  & "POS",33,21;"3) Backup": RETURN 
  458. 4680  REM     -- SELL INVESTMENT/ DATA ENTRY --
  459. 4690 X$ = T$(9): & "POS",42,12: & "IU","#=0..9,.";"#######";T$(9): IF X$ = ""  AND T$(9) = "" GOTO 4690
  460. 4700  IF T$(9) = ""  THEN T$(9) = X$
  461. 4710  & "POS",32,12: CALL  -868: PRINT T$(9)
  462. 4720  IF  VAL(T$(9)) > VAL(T$(2)) GOTO 4690
  463. 4730 X$ = T$(10): & "POS",42,13: & "IU","#=0..9,.";"#######";T$(10): IF X$ = ""  AND T$(10) = "" GOTO 4730
  464. 4740  IF T$(10) = ""  THEN T$(10) = X$
  465. 4750  & "POS",32,13: CALL  -868: PRINT T$(10)
  466. 4760 X$ = T$(11): & "POS",42,14: & "IU";"##";T$(11):B = 11: IF T$(11) = ""  THEN T$(11) = X$
  467. 4770 B = 11: GOSUB 640: ON C GOTO 4760: & "POS",32,14: CALL  -868: PRINT T$(11)
  468. 4780 X$ = T$(12): & "POS",42,15: & "IU";"##";T$(12):B = 12: IF T$(12) = ""  THEN T$(12) = X$
  469. 4790  GOSUB 670: ON C GOTO 4780: & "POS",32,15: CALL  -868: PRINT T$(12)
  470. 4800 X$ = T$(13): & "POS",42,16: & "IU";"##";T$(13):B = 13: IF T$(13) = ""  THEN T$(13) = X$
  471. 4810  GOSUB 700: ON C GOTO 4800: & "POS",32,16: CALL  -868: PRINT T$(13)
  472. 4820 X$ = T$(14): & "POS",42,17: & "IU","#=0..9,.";"#######";T$(14): IF T$(14) = ""  THEN T$(14) = X$
  473. 4830  & "POS",32,17: CALL  -868: PRINT T$(14): RETURN 
  474. 4840  REM     --- FOR A RECORD DELETION/ UPDATE M$() ---
  475. 4850  REM      -- & COMPRESS MASTER FILE (VAR D MUST HOLD ARRAY POS) --
  476. 4860 A$ = M$(D,0): IF D = A1  THEN  GOTO 4900
  477. 4870  FOR I = D TO A1:M$(I,0) = M$(I +1,0):M$(I,1) = M$(I +1,1)
  478. 4880  IF M$(I,0) = A$  THEN A = ( VAL(M$(I,1))) -1:M$(I,1) =  STR$(A)
  479. 4890  NEXT 
  480. 4900 A1 = A1 -1: PRINT D$"OPEN TEMP,L55": PRINT D$"WRITE TEMP,R0"
  481. 4910  PRINT A1: PRINT D$"OPEN MASTER":K = 1: FOR I = 1 TO A1 +1
  482. 4920  IF D = I  THEN  GOTO 4960
  483. 4930  PRINT D$"READ MASTER,R"I: FOR J = 0 TO 9: INPUT T$(J): NEXT 
  484. 4940  IF T$(0) = A$  AND I >D  THEN A =  VAL(T$(1)) -1:T$(1) =  STR$(A)
  485. 4950  PRINT D$"WRITE TEMP,R"K: FOR J = 0 TO 9: PRINT T$(J):T$(J) = "": NEXT :K = K +1
  486. 4960  NEXT : PRINT D$"CLOSE": PRINT D$"DELETE MASTER": PRINT D$"RENAME TEMP, MASTER": RETURN